export default {
    data () {
        return {}
    },
    mounted() {
        /*
            ["System", "Products", "Purchase", "Sales", "Stocks", "Materials", 
            "System.Config", "System.RoleManage", "System.AdminManage", "System.LoginLogs", "System.HandleLogs", 
            "Products.CategoryManage", "Products.BrandManage", "Products.ProductView", "Products.ProductCostView", 
            "Products.ProductCreate", "Products.ProductUpdate", "Products.ProductPriceUpdate", "Products.ProductDelete", 
            "Purchase.View", "Purchase.OrderCreate", "Purchase.OrderUpdate", "Purchase.OrderDelete", "Purchase.OrderStockPutIn", 
            "Sales.View", "Sales.OrderCreate", "Sales.OrderUpdate", 
            "Sales.OrderAudit", "Sales.OrderReceiveMoney", "Sales.OrderDelete", "Sales.OrderStockTakeOut", 
            "Stocks.Inventory", "Stocks.BillManage", "Stocks.SerialNumberManage", "Stocks.PutIn", 
            "Stocks.TakeOut", "Stocks.PurchaseReturn", "Stocks.SaleReturn", "Stocks.SaleExchange", "Stocks.ChangeLogs", 
            "Stocks.SerialNumberLogs", "System.WarehouseManage"]
        */
        // console.error(this.$store.getters.roles)
    },
    computed: {
        /* ----------商品---------- */
        isProducts() {
            // 是否有商品大类权限
            return this.hasSpecialRole("Products")
        },
        isCategoryManage() {
            // 是否可以分类管理
            return this.hasSpecialRole("Products.CategoryManage")
        },
        isProductBrandManage() {
            // 是否可以品牌管理
            return this.hasSpecialRole("Products.BrandManage")
        },
        isProductView() {
            // 是否可以产品浏览查看
            return this.hasSpecialRole("Products.ProductView")
        },
        isCostView() {
            // 是否可以查看价格
            return this.hasSpecialRole("Products.ProductCostView")
        },
        isProductCreate() {
            // 是否可以创建商品
            return this.hasSpecialRole("Products.ProductCreate")
        },
        isProductUpdate() {
            // 是否可以更新商品
            return this.hasSpecialRole("Products.ProductUpdate")
        },
        isProductPriceUpdate() {
            // 是否可以更新商品价格
            return this.hasSpecialRole("Products.ProductPriceUpdate")
        },
        isProductDelete() {
            // 是否可以删除商品
            return this.hasSpecialRole("Products.ProductDelete")
        },

        /* ----------财务管理--------- */
        isFinance() {
            // 是否有财务管理权限
            return this.hasSpecialRole("Finance")
        },
        isFinanceExpenditure() {
            // 是否财务管理支出权限
            return this.hasSpecialRole("Finance.Expenditure")
        },
        isFinanceRevenue() {
            // 是否财务管理收入权限
            return this.hasSpecialRole("Finance.Revenue")
        },
        isFinanceSalesStatistics() {
            // 是否财务管理销量统计权限
            return this.hasSpecialRole("Finance.SalesStatistics")
        },
        isFinanceView() {
            // 是否财务管理收支查看权限
            return this.hasSpecialRole("Finance.View")
        },
        isFinanceProfitStatistics() {
            // 是否财务管理利润统计权限
            return this.hasSpecialRole("Finance.ProfitStatistics")
        },

        /* ----------进货---------- */
        isPurchases() {
            // 是否有进货大类权限
            return this.hasSpecialRole("Purchase")
        },
        isPurchaseView() {
            // 是否有进货管理权限
            return this.hasSpecialRole("Purchase.View")
        },
        isPurchaseCreate() {
            // 是否可以创建进货订单
            return this.hasSpecialRole("Purchase.OrderCreate")
        },
        isPurchaseUpdate() {
            // 是否可以更新进货订单
            return this.hasSpecialRole("Purchase.OrderUpdate")
        },
        isPurchaseDelete() {
            // 是否可以删除进货订单
            return this.hasSpecialRole("Purchase.OrderDelete")
        },
        isPurchaseOrderStockPutIn() {
            // 是否可以进货订单入库
            return this.hasSpecialRole("Purchase.OrderStockPutIn")
        },

        /* ----------销售---------- */
        isSales() {
            // 是否有销售大类权限
            return this.hasSpecialRole("Sales")
        },
        isSalesView() {
            // 是否可以销售管理
            return this.hasSpecialRole("Sales.View")
        },
        isSalesCreate() {
            // 是否可以创建销售订单
            return this.hasSpecialRole("Sales.OrderCreate")
        },
        isSalesUpdate() {
            // 是否可以更新销售订单
            return this.hasSpecialRole("Sales.OrderUpdate")
        },
        isSalesDelete() {
            // 是否可以删除销售订单
            return this.hasSpecialRole("Sales.OrderDelete")
        },
        isSalesAudit() {
            // 是否可以审核销售订单
            return this.hasSpecialRole("Sales.OrderAudit")
        },
        isSalesReceiveMoney() {
            // 是否可以收款销售订单
            return this.hasSpecialRole("Sales.OrderReceiveMoney")
        },
        isSalesOrderStockTakeOut() {
            // 是否可以销售订单出库
            return this.hasSpecialRole("Sales.OrderStockTakeOut")
        },
        isSalesOrderStartInstall() {
            // 是否可以销售订单开始装机
            return this.hasSpecialRole("Sales.OrderStartInstall")
        },
        isSalesOrderPrepareComplete() {
            // 是否可以销售订单备货/装机完成
            return this.hasSpecialRole("Sales.OrderPrepareComplete")
        },
        isSalesOrderDeliver() {
            // 是否可以销售订单发货
            return this.hasSpecialRole("Sales.OrderDeliver")
        },
        isSalesOrderCancel() {
            // 是否可以销售订单取消
            return this.hasSpecialRole("Sales.OrderCancel")
        },
        isSalesOrderHangUp() {
            // 是否可以销售订单挂起
            return this.hasSpecialRole("Sales.OrderHangUp")
        },

        /* ----------售后/维修---------- */
        isAfterSales() {
            // 是否有售后大类权限
            return this.hasSpecialRole("AfterSales")
        },
        isAfterSalesView() {
            // 是否可以售后管理
            return this.hasSpecialRole("AfterSales.View")
        },
        isAfterSalesCreate() {
            // 是否可以创建售后订单
            return this.hasSpecialRole("AfterSales.OrderCreate")
        },
        isAfterSalesUpdate() {
            // 是否可以更新售后订单
            return this.hasSpecialRole("AfterSales.OrderUpdate")
        },
        isAfterSalesDelete() {
            // 是否可以删除售后订单
            return this.hasSpecialRole("AfterSales.OrderDelete")
        },
        isAfterSalesAudit() {
            // 是否可以审核售后订单
            return this.hasSpecialRole("AfterSales.OrderAudit")
        },
        isAfterSalesReceiveMoney() {
            // 是否可以收款售后订单
            return this.hasSpecialRole("AfterSales.OrderReceiveMoney")
        },
        isAfterSalesOrderComplete() {
            // 是否可以售后订单结单
            return this.hasSpecialRole("AfterSales.OrderComplete")
        },

        isAfterSalesRepairView() {
            // 是否可以维修管理
            return this.hasSpecialRole("AfterSales.RepairView")
        },
        isAfterSalesRepairCreate() {
            // 是否可以创建维修订单
            return this.hasSpecialRole("AfterSales.RepairCreate")
        },
        isAfterSalesRepairUpdate() {
            // 是否可以更新维修订单
            return this.hasSpecialRole("AfterSales.RepairUpdate")
        },
        isAfterSalesRepairDelete() {
            // 是否可以删除维修订单
            return this.hasSpecialRole("AfterSales.RepairDelete")
        },
        isAfterSalesRepairAudit() {
            // 是否可以审核维修订单
            return this.hasSpecialRole("AfterSales.RepairAudit")
        },
        isAfterSalesRepairReceiveMoney() {
            // 是否可以收款维修订单
            return this.hasSpecialRole("AfterSales.RepairReceiveMoney")
        },
        isAfterSalesRepairOrderComplete() {
            // 是否可以维修订单结单
            return this.hasSpecialRole("AfterSales.RepairComplete")
        },

        /* ----------售后/维修库存---------- */
        isAfterSalesStockView() {
            // 是否可以售后/维修订单库存查看
            return this.hasSpecialRole("AfltersaleStock.StockView")
        },
        isAfterSalesStockHandle() {
            // 是否可以售后/维修订单库存处理
            return this.hasSpecialRole("AfltersaleStock.StockHandle")
        },
        isAfterSalesStockPutIn() {
            // 是否可以售后/维修订单确认入库/撤销入库
            return this.hasSpecialRole("AfltersaleStock.StockPutIn")
        },
        isAfterSalesStockDelete() {
            // 是否可以售后/维修订单删除/撤销删除
            return this.hasSpecialRole("AfltersaleStock.StockDelete")
        },

        /* ----------库存---------- */
        isStocks() {
            // 是否有库存大类权限
            return this.hasSpecialRole("Stocks")
        },
        isStocksManage() {
            // 是否有库存管理权限
            return this.hasSpecialRole("Stocks.Manage")
        },
        isStocksPutIn() {
            // 是否有库存入库权限
            return this.hasSpecialRole("Stocks.PutIn")
        },
        isStocksTakeOut() {
            // 是否有库存出库库权限
            return this.hasSpecialRole("Stocks.TakeOut")
        },
        isStocksPurchaseReturn() {
            // 是否有进货退货权限
            return this.hasSpecialRole("Stocks.PurchaseReturn")
        },
        isStocksSaleReturn() {
            // 是否有销售退货权限
            return this.hasSpecialRole("Stocks.SaleReturn")
        },
        isStocksSaleExchange() {
            // 是否有销售换货权限
            return this.hasSpecialRole("Stocks.SaleExchange")
        },
        isStocksInventory() {
            // 是否有库存盘点权限
            return this.hasSpecialRole("Stocks.Inventory")
        },
        isStocksAllot() {
            // 是否有库存调拨权限
            return this.hasSpecialRole("Stocks.Allot")
        },
        isStocksSerialNumberManage() {
            // 是否有序列号管理权限
            return this.hasSpecialRole("Stocks.SerialNumberManage")
        },
        isStocksBillManage() {
            // 是否有库存历史单据权限
            return this.hasSpecialRole("Stocks.BillManage")
        },
        isStocksChangeLogs() {
            // 是否有库存日志权限
            return this.hasSpecialRole("Stocks.ChangeLogs")
        },
        isStocksSerialNumberLogs() {
            // 是否有序列号日志权限
            return this.hasSpecialRole("Stocks.SerialNumberLogs")
        },

        /* ----------资料---------- */
        isMaterials() {
            // 是否有资料大类权限
            return this.hasSpecialRole("Materials")
        },
        isMaterialsWarehouseManage() {
            // 是否有仓库管理权限
            return this.hasSpecialRole("Materials.WarehouseManage")
        },
        isMaterialsContactUnitManage() {
            // 是否有来往单位管理权限
            return this.hasSpecialRole("Materials.ContactUnitManage")
        },
    },
    methods: {
        // 传递权限名称，返回是否存在
        isHasPermission(roleName) {
            let index = this.$store.getters.roles.findIndex(role => {
                role = role.replace(".", "")
                roleName = roleName.replace(".", "")
                return role == roleName
            })
            return index != -1
        },
        // 判断是否有指定权限
        hasSpecialRole(role) {
            return this.$store.getters.roles.indexOf(role) != -1
        }
    }
  }
  
  
  